const express = require('express');
const router = express.Router();
const { User } = require('../models');

/**
 * 获取所有用户
 * GET /api/users
 * 支持查询参数：
 * - sortBy: 排序字段，默认为 'id'
 * - order: 排序方向，'ASC' 或 'DESC'，默认为 'ASC'
 */
router.get('/', async (req, res) => {
  try {
    // 获取排序参数
    const sortBy = req.query.sortBy || 'id';
    const order = req.query.order || 'ASC';
    
    // 验证排序字段（防止SQL注入）
    const allowedSortFields = ['id', 'nick_name', 'created_at', 'updated_at'];
    const sortField = allowedSortFields.includes(sortBy) ? sortBy : 'id';
    
    // 验证排序方向
    const sortOrder = order.toUpperCase() === 'DESC' ? 'DESC' : 'ASC';
    
    // 查询所有用户并排序
    const users = await User.findAll({
      order: [[sortField, sortOrder]],
      attributes: ['id', 'nick_name', 'avatar_url', 'openid', 'is_active', 'created_at', 'updated_at']
    });
    
    res.json({
      ok: true,
      data: users.map(user => user.toJSON()),
      count: users.length
    });
  } catch (err) {
    console.error('获取用户列表失败:', err);
    res.status(500).json({
      ok: false,
      error: err.message || '获取用户列表失败'
    });
  }
});

module.exports = router;

